home *** CD-ROM | disk | FTP | other *** search
- (*----------------------------------------------------------------------*)
- (* Fast_Change_Params --- fast change of communications params. *)
- (*----------------------------------------------------------------------*)
-
- OVERLAY PROCEDURE Fast_Change_Params;
-
- (*----------------------------------------------------------------------*)
- (* *)
- (* Procedure: Fast_Change_Params *)
- (* *)
- (* Purpose: Fast change of communications params *)
- (* *)
- (* Calling Sequence: *)
- (* *)
- (* Fast_Change_Params; *)
- (* *)
- (* *)
- (* Remarks: *)
- (* *)
- (* This routine is useful is making a fast switch between *)
- (* the parameter values needed by XMODEM and those required *)
- (* by the remote host. *)
- (* *)
- (*----------------------------------------------------------------------*)
-
- CONST
- Comm_Parities : ARRAY[ 1 .. 6 ] OF CHAR = ('E','N','O','E','N','O');
- Comm_Data_Bits : ARRAY[ 1 .. 6 ] OF INTEGER = ( 7, 7, 7, 8, 8, 8 );
- Baud_Rates: ARRAY[ 1 .. 8 ] OF INTEGER
- = ( 110, 150, 300, 600, 1200, 2400, 4800, 9600 );
-
- VAR
- Comm_Parms_Menu : Menu_Type;
- Baud_Menu : Menu_Type;
- Comm_Parms : INTEGER;
- I : INTEGER;
-
- BEGIN (* Fast_Change_Params *)
-
- Comm_Parms_Menu.Menu_Size := 6;
- Comm_Parms_Menu.Menu_Row := 11;
- Comm_Parms_Menu.Menu_Column := 30;
- Comm_Parms_Menu.Menu_Tcolor := Menu_Text_Color;
- Comm_Parms_Menu.Menu_Bcolor := BackGround_Color;
- Comm_Parms_Menu.Menu_Fcolor := Menu_Frame_Color;
- Comm_Parms_Menu.Menu_Width := 0;
- Comm_Parms_Menu.Menu_Height := 0;
-
- Comm_Parms_Menu.Menu_Default := ( Data_Bits - 7 ) * 3 + POS( Parity, 'ENO' );
-
- FOR I := 1 TO 6 DO
- WITH Comm_Parms_Menu.Menu_Entries[I] DO
- BEGIN
- Menu_Item_Row := I;
- Menu_Item_Column := 2;
- CASE I OF
- 1: Menu_Item_Text := 'a) Even parity, 7 bits, 1 stop';
- 2: Menu_Item_Text := 'b) No parity, 7 bits, 1 stop';
- 3: Menu_Item_Text := 'c) Odd parity, 7 bits, 1 stop';
- 4: Menu_Item_Text := 'd) Even parity, 8 bits, 1 stop';
- 5: Menu_Item_Text := 'e) No parity, 8 bits, 1 stop (Xmodem)';
- 6: Menu_Item_Text := 'f) Odd parity, 8 bits, 1 stop';
- END (* CASE *);
- END;
-
- Comm_Parms_Menu.Menu_Title := 'Choose new communications parameters: ';
-
- Menu_Display_Choices( Comm_Parms_Menu );
- Comm_Parms := Menu_Get_Choice( Comm_Parms_Menu , Erase_Menu );
-
- Parity := Comm_Parities [ Comm_Parms ];
- Data_Bits := Comm_Data_Bits[ Comm_Parms ];
-
- (* Get Baud Rate *)
- Baud_Menu.Menu_Size := 8;
- Baud_Menu.Menu_Row := 11;
- Baud_Menu.Menu_Column := 30;
- Baud_Menu.Menu_Tcolor := Menu_Text_Color;
- Baud_Menu.Menu_Bcolor := BackGround_Color;
- Baud_Menu.Menu_Fcolor := Menu_Frame_Color;
- Baud_Menu.Menu_Width := 0;
- Baud_Menu.Menu_Height := 0;
-
- CASE Baud_Rate Of
- 110 : Baud_Menu.Menu_Default := 1;
- 150 : Baud_Menu.Menu_Default := 2;
- 300 : Baud_Menu.Menu_Default := 3;
- 600 : Baud_Menu.Menu_Default := 4;
- 1200: Baud_Menu.Menu_Default := 5;
- 2400: Baud_Menu.Menu_Default := 6;
- 4800: Baud_Menu.Menu_Default := 7;
- 9600: Baud_Menu.Menu_Default := 8;
- END (* CASE *);
-
- FOR I := 1 to 8 DO
- With Baud_Menu.Menu_Entries[I] DO
- BEGIN
- Menu_Item_Row := I;
- Menu_Item_Column := 2;
- CASE I Of
- 1: Menu_Item_Text:= 'a) 110';
- 2: Menu_Item_Text:= 'b) 150';
- 3: Menu_Item_Text:= 'c) 300';
- 4: Menu_Item_Text:= 'd) 600';
- 5: Menu_Item_Text:= 'e) 1200';
- 6: Menu_Item_Text:= 'f) 2400';
- 7: Menu_Item_Text:= 'g) 4800';
- 8: Menu_Item_Text:= 'h) 9600';
- END (* CASE *);
- END;
-
- Baud_Menu.Menu_Title := 'Choose Baud Rate: ';
-
- Menu_Display_Choices( Baud_Menu );
- Baud_Rate := Baud_Rates[ Menu_Get_Choice( Baud_Menu , Erase_Menu ) ];
-
- Async_Reset_Port( Comm_Port, Baud_Rate, Parity, Data_Bits, 1 );
-
- END (* Fast_Change_Params *);